package cn.daenx.myadmin.modules.service.impl;

import cn.daenx.myadmin.common.constant.EventConstants;
import cn.daenx.myadmin.modules.domain.BaseEventVo;
import cn.daenx.myadmin.modules.domain.event.InjectSuccessReqVo;
import cn.daenx.myadmin.modules.service.EventHandleService;
import cn.daenx.myadmin.modules.utils.QianXunApi;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 收到消息-只处理群消息（recvMsg）
 */
@Slf4j
//@Service
@Service("event:" + EventConstants.recvMsg)
public class InjectEvent implements EventHandleService {


    @Override
    public void handle(BaseEventVo baseEventVo, JSONObject jsonObject) {
        InjectSuccessReqVo data = jsonObject.toJavaObject(InjectSuccessReqVo.class);
        BaseEventVo.Data wxdata = baseEventVo.getData();
        String wxmsg = wxdata.getMsg();
        
        //用于机器人管理群查询机器人是否在线
        if ("ping".equals(wxmsg)) {
            this.checkStatus(baseEventVo,wxdata);

        }
        //用于修改机器人昵称
        else if (wxmsg.lastIndexOf("改机器人昵称")!= -1 && wxdata.getMsgSource() == 0){
            this.editName(baseEventVo,wxdata);
        }
        /*
        发送麦序表
        1、设置主持 0-2XX xx主持 23-24 xx xx主持
        2、设置麦序文档
        3、设置扣排模式（P排 1排 随机数字X/X代表位数 表情包 加减乘除法（随机给算数的结果正确排序成功）
        4、发麦序@所有人  有需求则放在麦序表最后
         */
        else if (wxmsg.lastIndexOf("设置主持")!= -1) {
            String str = "主持：XX\n时间  \n日期月日";

//            int i = deptMapper.insertDept(new SysDept());
//            System.out.println(i);
            //写数据到数据库
        }
        else if (wxmsg.lastIndexOf("设置麦序文档")!= -1) {
            String str = wxmsg;

            //写数据到数据库
        }
        else if (wxmsg.lastIndexOf("扣排代码")!= -1) {
            String str = "";

            //写数据到数据库
        }
        //设置扣排人数 默认6  扣排人数
        else if (wxmsg.lastIndexOf("扣排人数")!= -1) {

        }


        /*
        定时任务
         */
        //扣排时间 默认40分发出麦序表 定时发
        else if (wxmsg.lastIndexOf("扣排时间")!= -1) {

        }
        //扣排结束时间 默认55分麦序排位截止 定时发
        else if (wxmsg.lastIndexOf("扣排结束")!= -1) {

        }
        //这是单独任务排截止时间 默认扣排结束时间
        else if (wxmsg.lastIndexOf("扣排结束")!= -1) {

        }
        //设置买8任务 x.x(任务0.3....3.0)
        else if (wxmsg.lastIndexOf("买8")!= -1) {
        }
        //设置买9任务 x.x(任务0.3....3.0)
        else if (wxmsg.lastIndexOf("买9")!= -1) {

        }
        //设置补位时间 XX
        else if (wxmsg.lastIndexOf("补位时间")!= -1) {

        }
        //固定手速x x  默认0
        else if (1==1) {
        }
    }

    private void checkStatus(BaseEventVo baseEventVo, BaseEventVo.Data wxdata) {
        String msg = "pong";
        QianXunApi.sendText(baseEventVo.getWxid(), wxdata.getFromWxid(), msg);
    }

    private void editName(BaseEventVo baseEventVo, BaseEventVo.Data wxdata) {
        String msg = wxdata.getMsg()+":成功";
        String newName = wxdata.getMsg().substring(wxdata.getMsg()
                .lastIndexOf("改机器人昵称")+6);
        JSONObject jsonObject = QianXunApi.editSelfMemberNick(baseEventVo.getWxid(), wxdata.getFromWxid(), newName);
        if (jsonObject != null) {
            QianXunApi.sendText(baseEventVo.getWxid(), wxdata.getFromWxid(), msg);
        }
    }

}
